// component/luck.js
const app = getApp()
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    lucksData: {
      type: Array,
      value: []
    },
    jinbi:0,
    jishu:0,
    jieguo:1
  },

  /**
   * 组件的初始数据
   */

  data: {
    appurl: app.apiurl,
apiimg: app.apiimg,
    amplification_index: 0, //轮盘的当前滚动位置
    roll_flag: true, //是否允许滚动
    max_number: 8, //轮盘的全部数量
    speed: 300, //速度，速度值越大，则越慢 初始化为300
    myInterval: "", //定时器
    max_speed: 40, //滚盘的最大速度
    minturns: 8, //最小的圈数为2
    runs_now: 0, //当前已跑步数
    luck_num: 0, // 中奖位置！！！！！！！！！！！！！！！！！！！！！！！！！
    end_amp: 0, //上一次滚动的位置
    start_flag: true,
    lucksData: [],  //这里是渲染数据
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //开始滚动
    startrolling: function () {
      this.triggerEvent('callstart');
      let _this = this;
      setTimeout(function(){
              //roll点
      let random = parseInt(_this.properties.jieguo);
      if (_this.data.start_flag == true) {
        _this.setData({
          luck_num: random,
          start_flag: false
        })
        //初始化步数
        _this.data.runs_now = 0;
        //当前可以点击的状态下
        if (_this.data.roll_flag) {
          _this.data.roll_flag = false;
          //启动滚盘，
          _this.rolling();
        }
      };
      //回调行数，把结果传出去
      _this.triggerEvent('callBack',random);
      },500)
    },

    //滚动轮盘的动画效果
    rolling: function (amplification_index) {
      let _this = this;
      this.data.myInterval = setTimeout(function () {
        _this.rolling();
      }, this.data.speed);
      this.data.runs_now++; //已经跑步数加一
      this.data.amplification_index++; //当前的加一
      //获取总步数，接口延迟问题，所以最后还是设置成1s以上
      let count_num = this.data.minturns * this.data.max_number + this.data.luck_num - this.data.end_amp;

      //上升期间
      if (this.data.runs_now <= (count_num / 3) * 2) {
        this.data.speed -= 30; //加速
        if (this.data.speed <= this.data.max_speed) {
          this.data.speed = this.data.max_speed; //最高速度为40；
        }
      }
      //抽奖结束
      else if (this.data.runs_now >= count_num) {
        clearInterval(this.data.myInterval);
        this.data.roll_flag = true;
        this.setData({
          end_amp: _this.data.amplification_index,
          start_flag: true
        })

        if (_this.data.is_selected == 0) {
          wx.showModal({
            title: '很遗憾',
            content: _this.data.prize_name,
            showCancel: false,
            success(res) {

            }
          })
        } else if (_this.data.is_selected == 1) {
          wx.showModal({
            title: '恭喜您',
            content: _this.data.prize_name,
            showCancel: false,
            success(res) {

            }
          })
        }
      }
      //下降期间
      else if (count_num - this.data.runs_now <= 10) {
        this.data.speed += 20;
      }
      //缓冲区间
      else {
        this.data.speed += 10;
        if (this.data.speed >= 100) {
          this.data.speed = 100; //最低速度为100；
        }
      }
      if (this.data.amplification_index > this.data.max_number) { //判定！是否大于最大数
        this.data.amplification_index = 1;
      }
      this.setData(this.data);

    },
  }
})